Software applications that are executed on a computing device may stop functioning as a result of an error encountered during execution of the software application. An error may be the result of a process or a process thread that may be executing incorrectly. Some common examples of errors may include an attempt by a process to read or write to computer memory that is not allocated to the process for reading or writing (e.g., a memory access violation), or an unhandled program exception that results in the termination of a process. In the event of an error, a user may restart the software application or reload electronic content displayed by the software application.
Some software applications may be based on multi-process architectures that may use sandboxed child processes that separate a child processes from a parent process, thereby avoiding having to terminate a parent process when a child process stops functioning. In the event that a sandboxed child process stops functioning (e.g., due to a memory access violation or an unhandled program exception), the child process may be terminated and a new sandboxed child process may be launched.